package com.tanjun.userservice.web.service.user;

import com.mybatisflex.core.service.IService;
import com.tanjun.userservice.web.service.user.entity.BaseAdminDeptEntity;

import java.util.Collection;
import java.util.List;

/**
* @author tanjun
* @description 针对表【base_admin_dept(管理员部门表)】的数据库操作Service
* @createDate 2024-12-08 21:42:35
*/
public interface BaseAdminDeptService extends IService<BaseAdminDeptEntity> {
    /**
     * 新增部门
     * @param baseAdminDeptEntity
     */
    void addDept(BaseAdminDeptEntity baseAdminDeptEntity);

    /**
     * 修改部门
     * @param dept
     */
    void updateDept(BaseAdminDeptEntity dept);
    /**
     * 删除部门
     * @param id 部门id
     */
    void delDept(Long id);

    /**
     * 根据id获取部门信息
     * @param ids ids
     * @return 部门列表
     */
    List<BaseAdminDeptEntity> listAdminDeptById(Collection<Long> ids);

    /**
     * 获取所有的子级部门
     * @param parentId 父级部门id
     * @return 返回子级部门
     */
    List<BaseAdminDeptEntity> getChildrenDept(Long parentId);

    /**
     * 获取所有的子集以及自己的部门id
     * @param parentId 父级部门id
     * @return 部门id list
     */
    List<Long> getChildrenAndSelfDeptId(Long parentId);

    /**
     *查询所有的部门信息
     * @return 查询所有的部门信息
     */
    List<BaseAdminDeptEntity> listAll();


}
